Міністерство освіти та науки України
НУ „Львівська політехніка”
Лекція №1
з курсу: «Застосування засобів об’єктно-орієнтованого програмування в лінгвістичних задачах»
Львів - 2010
1. Об’єктно-орієнтоване програмування, основна
методологія програмування 90 років.
ООП є продуктом 25 літньої практики і включає такі мови
програмування:
- Simula, SmallTalk, C++, Object Pascal.
ООП це стиль програмування, що фіксує поведінку реального світу
таким чином, при якому деталі його реалізації сховані. ООП – є лише
останньою ланкою і довгому ланцюгу рішень, що були запропоновані для
вирішення «кризи програмного забезпечення» - це ті задачі, які нам
необхідно вирішити випереджаючи наші можливості. ООП часто називають
новою парадигмою(para-a-digm – Список всіх варіантів закінцення мови)
програмування. Інші парадигми:
- директивне програмування (структурне програмування – Pascal, C);
- логічне (Prolog);
- функціональне (Lisp).
Парадигми в програмуванні визначають як проводити(виконувати)
обчислення, як робота, що виконується комп’ютером повинна бути
структурована і організована.
1. 1. Покоління мов програмування.
Розглядаючи історію розвитку програмування, можна виділити дві
тенденції які змінюють одна одну:
• зміщення акцентів від програмування окремих деталей до
програмування більш великих компонентів;
• розвиток та удосконалення мов програмування високого рівня.
Велика кількість сучасних комерційних програмних систем набагато
більше і суттєво складніше, ніж їх попередники декілько років тому. Це
зростання складності викликало більше число прикладних досліджень з
методології проектування, особливо, з декомпозиції, абстрагуванню та
ієрархіям. Створення більш виразних мов програмування доповнило
досягнення в цій галузі. Виникла тенденція переходу від мов, що вказують
комп’ютеру, що робити (імперативні мови), до мов, що описують ключові
абстракції проблемноїй області (декларативні мови).
Можна згрупувати деякі з найбільш відомих мов високого рівня в
чотирі покоління в залежності від того, які мовні конструкції вперше в них
з’явилися:
• Перше покоління (1954-1958)
FORTRAN I
Математичні формули
ALGOL-58
Математичні формули
Flowmatic
Математичні формули
IPL V
Математичні формули
• Друге покоління (1959-1961)
FORTRAN II
Підпрограми, роздільна компіляція
ALGOL-60
Блочна структура, типи даних
COBOL
Опис даних, робота з файлами
Lisp
Обробка списків, вказівники, збирання сміття
• Трет’е покоління (1962-1970)
PL/I
FORTRAN+ALGOL+COBOL
ALGOL-68
Спадкоємиць ALGOL-60
Pascal
Спадкоємиць ALGOL-60
Simula
Класи, абстрактні дані
• Загублене покоління (1970-1980) (Четверте покоління)
В кожному наступному поколінні мінялися механізми абстракції що
підтримуються мовами програмування. Мови першого покоління
орієнтувалися на науково-інженерне застосування, і словник цієї
предметної області бул цілком виключно математичним. Такі мови, як
FORTRAN I, були створенні для спрошення програмування математичних
формул, щоб звільнити програміста від труднощів асемблера і машиного
коду. Перше покоління мов високого рівня було кроком, що наближає
програмування до предметної області і віддаляють від конкретної машини.
В другому поколінні мов основною тенденцією стало розвиток
алгоритмічних абстракцій. В той час потужність комп’ютерів швидко
зростала, а комп’ютерна індустрія дозволила розширити області їх
використання, особливо в бізнесі. Головною задачею стало інструктувати
машину, що робити: спочатку прочитати ці анкети співробітників, потім
відсортувати їх і вивести результати на друк. Це було ше одним кроком до
предметної області і від конкретної машини. На прикінці 60-х років з
появою транзисторів, а потім інтегральных схем, вартість комп’ютерів різко
снизилась, а їх потужність зростає єкспоненціально. З’явилась можливість
вирішувати все більш складні задачи, але це вимагало вміння обрабляти
різноманітні типи даних. Такі мови як ALGOL-68 а ...